#输入和输出
# name = input("input your name :");
# print("hello",100+200," hehe");
# print(name);

#缩进语句
# a = 100
# if a>= 0:
	# print(a);
# else:
	# print(-a);

#利用'''换行
# print('''hello\n 
# hi
# hehe''');

#不转义
# print(r"\t\t\jjjjj");

# a = 'xyz'
# b = 'xyz'
# print(a==b)
#输出true

# 格式化
# print("%dhello %s %d" % (99,"jing!",99));

#list列表
# classmates = ["a","b","c"];
# print(classmates);
# print(len(classmates))
# classmates.insert(len(classmates),"d");#增
# print(classmates);
# classmates.pop();#删
# print(classmates);

#tuple元祖 与列表不同的区别是在于元祖不能进行删除和插入
# tuple = (1,2,2,3,"hello")
# print(tuple);

# 条件判断
# age = 20 ;
# if age<20:
	# print("<20");
# elif age<15:
	# print("<15");
# else:
	# print(">20");
	
# 循环
# names = ["a","b","c","d"];
# for name in names:
	# print(name);
# print(names);

#range函数可以生成有序的序列 range(5)生成小于5的有序序列
# lista = list(range(1,5));
# print(lista);
# #计算1+2+....100
# sum = 0;
# for num in range(1,101):
	# sum+= num;
# print(sum);

# while循环
# n = 5
# while n>0:
	# print(n);
	# n = n - 1;

# 字典
# d = {"a":5,"b":19,"c":30}
# d['d'] = 90 #增加
# print(d['a']);
# print(d.get("d"));
# print(d.pop("a"));

# #集合set 有序的集合
# s = set([1,2,3,4,1,2,3,7,7,4,5]);
# print(s);
#求set集合的交集和并集
s1 = set([1,2,3]);
s2 = set([3,4,5]);
#s3 = s1 & s2
s3 = s1 | s2#并集
print(s3);

#numpy的矩阵
#mySum = mat([-1,-3,1,3,4,5,6,1])
#print("mySum:\n",mySum[mySum>0])


######################关于numpy的array与list的不同之处
#python中的list和array的不同之处 及转换
#python中的list和array的不同之处
#list是列表,可以通过索引查找数值，但是不能对整个列表进行数值运算
#
#In [96]: b=[1,2]
#
#In [97]: b[1]
#Out[97]: 2
#In [98]: type(b)
#Out[98]: list
#In [99]: b+b
#Out[99]: [1, 2, 1, 2]
#array是数组，也可以通过索引值查找数据，但是能对整个数组进行数值运算
#In [100]: a=np.array([1,2
#In [101]: a[1]
#Out[101]: 2
#In [102]: type(a)
#Out[102]: numpy.ndarray
#In [103]: a+a
#Out[103]: array([2, 4])

#################在numpy中 mat 与numpy的区别 #####################
#array(数组)和mat(矩阵)
#matrix是array的分支，matrix和array在很多时候都是通用的，你用哪一个都一样。但这时候，官方建议大家如果两个可以通用，那就选择array，因为array更灵活，速度更快，很多人把二维的array也翻译成矩阵。 
#但是matrix的优势就是相对简单的运算符号，比如两个矩阵相乘，就是用符号*，但是array相乘不能这么用，得用方法.dot() 
#array的优势就是不仅仅表示二维，还能表示3、4、5…维，而且在大部分Python程序里，array也是更常用的。



#######################python map高阶函数的用法#################3

#map()函数
#map()是 Python 内置的高阶函数，它接收一个函数 f 和一个 list，并通
#过把函数 f 依次作用在 list 的每个元素上，得到一个新的 list 并返回。

#def f(x):
#    return x*x
#print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
#输出结果：
#[1, 4, 9, 10, 25, 36, 49, 64, 81]

#
##############################dict.has_key出错#############
#报错 'dict' object has no attribute 'has_key'
#has_key方法在python2中是可以使用的，在python3中删除了。
#
#比如：
#
#if dict.has_key(word):
#
#改为：
#
#if word in dict:
###############可变集合和不可变集合###################主要是可以作为字典的KEY
#https://www.cnblogs.com/panwenbin-logs/p/5519617.html
#python中set和frozenset方法和区别
#set(可变集合)与frozenset(不可变集合)的区别：
#set无序排序且不重复，是可变的，有add（），remove（）等方法。既然是可变的，所以它不存在哈希值。基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交集), difference(差集)和sysmmetric difference(对称差集)等数学运算. 
#sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合，sets不记录元素位置或者插入点。因此，sets不支持 indexing, 或其它类序列的操作。
#frozenset是冻结的集合，它是不可变的，存在哈希值，好处是它可以作为字典的key，也可以作为其它集合的元素。缺点是一旦创建便不能更改，没有add，remove方法。
# 1 >>> s=set('cheeseshop')  使用工厂方法创建
# 2 >>> s
# 3 {'h', 'c', 'o', 's', 'e', 'p'}
# 4 >>> type(s)
# 5 <type 'set'>
# 6 
# 7 >>> s={'chessseshop','bookshop'}直接创建，类似于list的[]和dict的{}，不同于dict的是其中的值，set会将其中的元素转换为元组
# 8 >>> s
# 9 {'bookshop', 'chessseshop'}
#10 >>> type(s)
#11 <type 'set'>
#12 
#13 不可变集合创建：
#14 >>> t=frozenset('bookshop')
#15 >>> t
#16 frozenset({'h', 'o', 's', 'b', 'p', 'k'})

#################readline与readlines##########
#readlines为读整个文件
#readline为读一行


###################dictionary changed size during iteration#############
#a={'a':1, 'b':0, 'c':1, 'd':0}
#for key in a.keys():
#	del a[key]

#大概是说字典在遍历时不能进行修改，建议转成列表或集合处理。

#所以，正确的代码：

#a={'a':1, 'b':0, 'c':1, 'd':0}
#for key in list(a.keys()):
#	del a[key]

##############关于MAP在3.0中返回的是MAP object的处理做法###################
#[list(map(float,line)) for line in stringArr]
#添加上list


################numpy中的flatten函数###########
#打平
#>>>a=array([[1,2],[3,4],[5,6]])  ###此时a是一个array对象
#>>>a
#array([[1,2],[3,4],[5,6]])
# 
#>>>a.flatten()
#array([1,2,3,4,5,6])

#########numpy中的A的意思是将矩阵转化为array数组########



################[:,0] 的意思###########
##############取第0列的数据#########